package com.ruoyi.accountant.service;

import com.ruoyi.accountant.domain.Account;
import com.ruoyi.accountant.domain.other.CallResult;
import com.ruoyi.web.web.form.IncomeForm;
import com.ruoyi.web.web.form.PayForm;
import com.ruoyi.web.web.form.TransferForm;

import java.util.List;

/***
 * 賬戶服務
 */
public interface AccountService {
    /***
     * 保存一个账户
     * @param account
     */
    void save(Account account);

    /***
     * 查询所有
     * @return
     */
    List<Account> findAll();

    /***
     * 通过ID查询
     * @param l
     * @return
     */
    Account findById(long l);

    /***
     * 更新賬戶信息
     * @param byId
     */
    int update(Account byId);

    /***
     * 逻辑删除账户
     * @param aid
     */
    int deleteById(Long aid);

    /***
     * 收入
     * @param accountForm
     */
     int income(IncomeForm accountForm);

    /***
     * 支出
     * @param payForm
     */
    CallResult pay(PayForm payForm);

    /***
     * 转账
     * @param transferForm
     */
    void transfer(TransferForm transferForm);

    /***
     * 根据账户名称查询
     * @param accountName
     */
    Account findByAname(String accountName);
}
